#!/usr/bin/env python3
"""
SimpleAPI 文档功能示例
演示如何使用自动生成的API文档
"""

from simpleapi.simpleapi import SimpleApi

# 创建应用实例，启用文档功能
app = SimpleApi(
    title="SimpleAPI 示例应用",
    version="1.0.0", 
    description="这是一个演示SimpleAPI文档功能的示例应用",
    enable_docs=True
)

@app.get("/", summary="首页", description="返回欢迎信息")
def home():
    """返回欢迎信息"""
    return {"message": "欢迎使用SimpleAPI!", "version": "1.0.0"}

@app.get("/users/{user_id}", summary="获取用户信息", description="根据用户ID获取用户详细信息", tags=["用户管理"])
def get_user(user_id: int):
    """
    获取指定用户的详细信息
    
    参数:
    - user_id: 用户的唯一标识符
    """
    return {
        "user_id": user_id,
        "name": f"用户{user_id}",
        "email": f"user{user_id}@example.com",
        "status": "active"
    }

@app.get("/users", summary="获取用户列表", description="获取所有用户的列表", tags=["用户管理"])
def list_users(page: int = 1, limit: int = 10):
    """
    获取用户列表，支持分页
    
    参数:
    - page: 页码，默认为1
    - limit: 每页数量，默认为10
    """
    users = []
    start = (page - 1) * limit
    for i in range(start, start + limit):
        users.append({
            "user_id": i + 1,
            "name": f"用户{i + 1}",
            "email": f"user{i + 1}@example.com"
        })
    
    return {
        "users": users,
        "page": page,
        "limit": limit,
        "total": 100
    }

@app.post("/users", summary="创建用户", description="创建一个新用户", tags=["用户管理"])
def create_user():
    """
    创建新用户
    """
    return {
        "message": "用户创建成功",
        "user_id": 123,
        "status": "created"
    }

@app.put("/users/{user_id}", summary="更新用户", description="更新指定用户的信息", tags=["用户管理"])
def update_user(user_id: int):
    """
    更新用户信息
    
    参数:
    - user_id: 要更新的用户ID
    """
    return {
        "message": f"用户{user_id}更新成功",
        "user_id": user_id,
        "status": "updated"
    }

@app.delete("/users/{user_id}", summary="删除用户", description="删除指定的用户", tags=["用户管理"])
def delete_user(user_id: int):
    """
    删除用户
    
    参数:
    - user_id: 要删除的用户ID
    """
    return {
        "message": f"用户{user_id}删除成功",
        "user_id": user_id,
        "status": "deleted"
    }

@app.get("/health", summary="健康检查", description="检查应用程序的健康状态", tags=["系统"])
def health_check():
    """健康检查端点"""
    return {
        "status": "healthy",
        "timestamp": "2025-08-07T19:30:00Z",
        "version": "1.0.0"
    }

if __name__ == "__main__":
    print("SimpleAPI 文档示例应用")
    print("=" * 50)
    print("启动后可访问以下地址:")
    print("- 应用首页: http://127.0.0.1:8000/")
    print("- Swagger UI: http://127.0.0.1:8000/api/docs")
    print("- ReDoc: http://127.0.0.1:8000/api/redoc")
    print("- OpenAPI JSON: http://127.0.0.1:8000/api/openapi.json")
    print("=" * 50)
    
    app.run() 